// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

const TcbRouter = require('tcb-router');
const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {

    const app = new TcbRouter({
        event
    });
    // 路由为字符串,该中间件只适用于view_inc 路由
    app.router('view_inc', async (ctx, next) => {
        try {
            return await db.collection('news').doc(event.id).update({
                // data传入需要的局部更新的数据
                data: {
                    view: _.inc(1)
                }
            })
        } catch (e) {
            console.error(e)
        }
        await next(); // 执行下一中间件
    })



    // 路由为字符串,该中间件只适用于 appreciate_inc 路由
    app.router('appreciate_inc', async (ctx, next) => {
        try {
            return await db.collection('news').doc(event.id).update({
                // data传入需要的局部更新的数据
                data: {
                    appreciate: _.inc(event.value)
                }
            })
        } catch (e) {
            console.error(e)
        }
        await next(); // 执行下一中间件
    })


    // 路由为字符串,该中间件只适用于 comment_inc 路由
    app.router('comment_inc', async (ctx, next) => {
        try {
            return await db.collection('news').doc(event.id).update({
                // data传入需要的局部更新的数据
                data: {
                    comment: _.inc(1)
                }
            })
        } catch (e) {
            console.error(e)
        }
        await next(); // 执行下一中间件
    })

    return app.serve();
}